<?php

namespace app\api\controller;

class TokenController
{
    /**
     * @title 生成accessToken
     * @desc  accessToken过期时间是24小时
     * @method POST
     * @param string $supplierCode 采购平台提供的供应商标识
     * @param string $appKey 供应商提供的用户名
     * @param string $appSecret 供应商提供的32位MD5小写密码
     * 
     * @return boolean $success true成功 false 失败 
     * @return string $resultCode 异常代码 00正常 01token失效 02非空项为空 03网络异常 04 主键冲突 05数据超长 06相应超时 07业务异常 08权限不足 99其他
     * @return string $resultMsg 异常信息描述
     * @return string $Result 成功时返回accessToken 8f1235ca2775079f6140bb1d2333a5f8
     */
    public  function accessToken()
    {
        if(request()->isPost()){
            $supplierCode = input('supplierCode')?:'';
            $appKey = input('appKey')?:'';
            $appSecret = input('appSecret')?:'';
            if(empty($supplierCode)) return api_return(null,'没有supplierCode',false,null);
            if(empty($appKey)) return api_return(null,'没有appKey',false,null);
            if(empty($appSecret)) return api_return(null,'没有appSecret',false,null);
            // 验证appKey appSecret
            $verify = $this->verify($appKey,$appSecret);
            if(!$verify) return api_return(null,'验证appKey,appSecret有误',false,null);
            // 生成token
            $token = get_token(); 
            // 保存到缓存24小时
            cache('token_'.$supplierCode,$token,60*60*24); 
            return api_return($token);
        }else{
            return api_return(null,'请求方式有误',false,null);
        }
  
    }

    /**
     * @title 验证
     */
    public function verify($appKey,$appSecret)
    {
        $cache = cache($appKey);
        if(!$cache) return false;
        if($appSecret != $cache) return false;
        return true;
    }

   

}